import type { PageParam, PageResult } from '@vben/request';
import type { Dayjs } from 'dayjs';

import { requestClient } from '#/api/shop-request';

export namespace HandCardTypeApi {
  /** 手牌类型信息 */
  export interface HandCardType {
    id: number; // 手牌类型ID
    typeName?: string; // 手牌类型名称
    typeCode?: string; // 类型编码
    typeCategory?: string; // 类型分类
    parentTypeId: number; // 父类型ID（支持层级）
    adultPrice?: number; // 成人价
    childPrice?: number; // 儿童价
    seniorPrice: number; // 老人价
    memberPrice: number; // 会员价
    peakHourPrice: number; // 高峰时段价格
    dynamicPricing: string; // 动态定价配置
    discountFlag: boolean; // 参与折扣（1：参与折扣 0：不参与折扣）
    discountRules: string; // 折扣规则配置
    memberBenefits: string; // 会员权益配置
    maxUsageHours: number; // 最大使用时长(小时)
    minUsageHours: number; // 最小使用时长(小时)
    advanceBookingHours: number; // 提前预约小时数
    usageRestrictions: string; // 使用限制：{"age_limit":18,"time_limit":"22:00"}
    description: string; // 类型描述
    iconUrl: string; // 图标URL
    colorCode: string; // 颜色代码
    status: string; // 状态
    sortOrder: number; // 排序
    isFeatured: boolean; // 是否推荐
    orgId?: number; // 组织ID
    groupId?: number; // 所属集团ID
    storeId?: number; // 所属门店ID
    remark: string; // 备注
    goodsIds?:string; // 绑定的商品ID
    goodsInfo?:string; // 绑定的商品名称
  }
}

/** 查询手牌类型分页 */
export function getHandCardTypePage(params: PageParam) {
  return requestClient.get<PageResult<HandCardTypeApi.HandCardType>>('/spa/hand-card-type/page', { params });
}

/** 查询手牌类型详情 */
export function getHandCardType(id: number) {
  return requestClient.get<HandCardTypeApi.HandCardType>(`/spa/hand-card-type/get?id=${id}`);
}

/** 新增手牌类型 */
export function createHandCardType(data: HandCardTypeApi.HandCardType) {
  return requestClient.post('/spa/hand-card-type/create', data);
}

/** 修改手牌类型 */
export function updateHandCardType(data: HandCardTypeApi.HandCardType) {
  return requestClient.put('/spa/hand-card-type/update', data);
}

/** 删除手牌类型 */
export function deleteHandCardType(id: number) {
  return requestClient.delete(`/spa/hand-card-type/delete?id=${id}`);
}


/** 导出手牌类型 */
export function exportHandCardType(params: any) {
  return requestClient.download('/spa/hand-card-type/export-excel', { params });
}


